From: Florian Müllner Date: Mon, 26 Mar 2012 09:17:09 +0000 (+0200) Subject: checkBox: Work around a height-for-width problem X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~6731 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=bf992989c7197a48c539cef7b29cb200d42c07e2;p=gnome-shell.git checkBox: Work around a height-for-width problem StBoxLayout currently does not handle height-for-width children correctly under some circumstances. As a work-around, hard-code a label height of two lines of text, which should work for most locales in the one place the widget is currently used. https://bugzilla.gnome.org/show_bug.cgi?id=672543 --- diff --git a/js/ui/checkBox.js b/js/ui/checkBox.js index 097fe96f6..06b4367ee 100644 --- a/js/ui/checkBox.js +++ b/js/ui/checkBox.js @@ -42,6 +42,12 @@ const CheckBoxContainer = new Lang.Class({ }, _getPreferredHeight: function(actor, forWidth, alloc) { + /* FIXME: StBoxlayout currently does not handle + height-for-width children correctly, so hard-code + two lines for the label until that problem is fixed. + + https://bugzilla.gnome.org/show_bug.cgi?id=672543 */ +/* let [minBoxHeight, natBoxHeight] = this._box.get_preferred_height(forWidth); let [minLabelHeight, natLabelHeight] = @@ -49,6 +55,14 @@ const CheckBoxContainer = new Lang.Class({ alloc.min_size = Math.max(minBoxHeight, minLabelHeight); alloc.natural_size = Math.max(natBoxHeight, natLabelHeight); +*/ + let [minBoxHeight, natBoxHeight] = + this._box.get_preferred_height(-1); + let [minLabelHeight, natLabelHeight] = + this.label.get_preferred_height(-1); + + alloc.min_size = Math.max(minBoxHeight, 2 * minLabelHeight); + alloc.natural_size = Math.max(natBoxHeight, 2 * natLabelHeight); }, _allocate: function(actor, box, flags) {